package com.redepronik.negosys.rrhh.service;

import java.util.List;

import javax.faces.application.FacesMessage;

import org.springframework.transaction.annotation.Transactional;

import com.redepronik.negosys.invfac.entityAux.PersonaCedulaNombre;
import com.redepronik.negosys.rrhh.entity.Emailpersona;
import com.redepronik.negosys.rrhh.entity.Persona;
import com.redepronik.negosys.rrhh.entity.Telefonopersona;

public interface PersonaService {

	@Transactional
	public boolean actualizar(Persona persona);

	@Transactional
	public void añadirFilaEmail(Persona persona);

	@Transactional
	public void añadirFilaTelefono(Persona persona);

	@Transactional
	public void comprobarEmail(Persona persona, Emailpersona email);

	public Boolean comprobarEmailsVacios(List<Emailpersona> listaEmails);

	@Transactional
	public void comprobarTelefono(Persona persona, Telefonopersona telefono);

	public Boolean comprobarTelefonosVacios(List<Telefonopersona> listaTelefonos);

	@Transactional
	public Long contar();

	@Transactional
	public void eliminar(Persona persona);

	@Transactional
	public void eliminarEmail(Persona persona, Emailpersona emailPersona);

	@Transactional
	public void eliminarTelefono(Persona persona,
			Telefonopersona telefonoPersona);

	@Transactional
	public void eliminartelefonoEmail(Persona persona);

	@Transactional
	public boolean insertar(Persona persona);

	@Transactional
	public FacesMessage insertarEmail(Persona persona, Emailpersona emailPersona);

	public void insertarFilaEmail(Persona persona);

	public void insertarFilaTelefono(Persona persona);

	@Transactional
	public FacesMessage insertarTelefono(Persona persona,
			Telefonopersona telefonoPersona);

	@Transactional
	public List<Persona> obtener(Boolean activo);

	@Transactional
	public PersonaCedulaNombre obtenerPersonaCedulaNombre(String cedula);

	@Transactional
	public Persona obtenerPorCedula(String cedula);

	@Transactional
	public Persona obtenerPorPersonaId(Integer personaId);

	@Transactional
	public List<Persona> obtenerTodosPorBusqueda(String criterioBusqueda,
			int criterioBusquedaCiudad);
}